Systems and methods for horizon leveling videos

ABSTRACT

A video may be captured by an image capture device in motion. A horizon-leveled view of the video may be generated by providing a punchout of the video. The punchout of the video may compensate for rotation of the image capture device during capture of the video. The placement of the punchout of the video may be changed based on different rotational positions of to provide a view in which a horizon depicted within the video is leveled.

FIELD

This disclosure relates to horizon leveling videos based on a punchoutof video frames.

BACKGROUND

A video may have been captured by an image capture device in motion. Themotion of the image capture device during the capture of the video maycause the video to depict a tilted view of a scene.

SUMMARY

This disclosure relates to horizon leveling videos. Video information,rotational position information, and/or other information may beobtained. The video information may define a video. The video mayinclude video content captured by an image capture device during acapture duration. The video content may have a progress length. Thevideo content may include visual content captured at different momentswithin the capture duration. The visual content may be viewable as afunction of progress through the progress length. The visual content mayhave a field of view. The rotational position information maycharacterize rotational positions of the image capture device as afunction of progress through the capture duration. A viewing window forthe visual content as a function of progress through the progress lengthmay be determined based on the rotational positions of the image capturedevice as the function of progress through the capture duration and/orother information. The viewing window may define extents of the visualcontent to be included within horizon-leveled visual content as thefunction of progress through the progress length. Determination of theviewing window may include determination of a placement of the viewingwindow within the field of view of the visual content as the function ofprogress through the progress length based on the rotational positionsof the image capture device as the function of progress through thecapture duration and/or other information. The horizon-leveled visualcontent may be generated based on the viewing window and/or otherinformation. The horizon-leveled visual content may include a punchoutof the extents of the visual content defined by the viewing window.Inclusion of the extents of the visual content defined by the viewingwindow within the horizon-leveled visual content may effectuate horizonleveling of the visual content.

A system that horizon levels videos may include one or more electronicstorages, one or more processors, and/or other components. An electronicstorage may store video information defining a video, informationrelating to the video, information relating to video content,information relating to visual content, information relating to an imagecapture device, information relating to a capture duration, rotationalposition information for the video, information relating to rotationalpositions of the image capture device, information relating to a viewingwindow, information relating to placements of the viewing window,information relating to horizon-leveled visual content, informationrelating to a punchout of visual content, and/or other information. Insome implementations, the system may include one or more opticalelements, one or more image sensors, one or more position sensors,and/or other components.

One or more components of the system may be carried by a housing, suchas a housing of an image capture device. For example, the opticalelement(s), the image sensor(s), and/or the position sensor(s) of thesystem may be carried by the housing of an image capture device. Thehousing may carry other components, such as the processor(s) and/or theelectronic storage.

The processor(s) may be configured by machine-readable instructions.Executing the machine-readable instructions may cause the processor(s)to facilitate horizon leveling videos. The machine-readable instructionsmay include one or more computer program components. The computerprogram components may include one or more of a video informationcomponent, a position information component, a viewing window component,a generation component, and/or other computer program components.

The video information component may be configured to obtain videoinformation and/or other information. Video information may define avideo. The video may include video content captured by an image capturedevice during a capture duration. The video content may have a progresslength. The video content may include visual content captured atdifferent moments within the capture duration. The visual content may beviewable as a function of progress through the progress length. Thevisual content may have a field of view.

In some implementations, the visual content may include a distortionsuch that a straight line within a scene depicted within the visualcontent appears as a curved line. The distortion of the visual contentmay reduce impact of an off-axis horizon depicted within thehorizon-leveled visual content. In some implementations, the distortionmay include a barrel distortion, a pincushion distortion, and/or otherdistortions.

In some implementations, the visual content may include the distortionbased on capture of the visual content through a wide field of viewoptical element. In some implementations, the visual content may includethe distortion based on application of the distortion to non-distortedvisual content. The distortion may be applied to the non-distortedvisual content based on the visual content including the non-distortedvisual content and/or other information.

The position information component may be configured to obtainrotational position information for the video and/or other information.The rotational position information may characterize rotationalpositions of the image capture device that captured the video content asa function of progress through the capture duration.

The viewing window component may be configured to determine a viewingwindow for the visual content as a function of progress through theprogress length based on the rotational positions of the image capturedevice as the function of progress through the capture duration and/orother information. The viewing window may define extents of the visualcontent to be included within horizon-leveled visual content as thefunction of progress through the progress length. Determination of theviewing window may include determination of a placement of the viewingwindow within the field of view of the visual content as the function ofprogress through the progress length based on the rotational positionsof the image capture device as the function of progress through thecapture duration and/or other information.

In some implementations, the determination of the placement of theviewing window within the field of view of the visual content mayinclude determination of a rotation of the viewing window within thefield of view of the visual content.

In some implementations, the determination of the viewing window mayinclude determination of a size of the viewing window as the function ofprogress through the progress length based on the rotational positionsof the image capture device as the function of progress through thecapture duration. In some implementations, the size of the viewingwindow may change as the function of progress through the progresslength to simulate changes in zoom for the visual content.

In some implementations, the viewing window may have a one-by-one aspectratio. The one-by-one aspect ratio of the viewing window may reduceimpact of an off-axis horizon depicted within the horizon-leveled visualcontent.

In some implementations, the determination of the placement of theviewing window within the field of view of the visual content mayinclude determination of a location of the viewing window within thefield of view of the visual content. The location of the viewing windowwithin the field of view of the visual content may determine framing ofthe visual content.

The generation component may be configured to generate thehorizon-leveled visual content based on the viewing window and/or otherinformation. The horizon-leveled visual content may include a punchoutof the extents of the visual content defined by the viewing window.Inclusion of the extents of the visual content defined by the viewingwindow within the horizon-leveled visual content may effectuate horizonleveling of the visual content. In some implementations, thehorizon-leveled visual content may be generated as a director track thatdefines the extents of the visual content to be used during playback toprovide a horizon-leveled view of the visual content.

These and other objects, features, and characteristics of the systemand/or method disclosed herein, as well as the methods of operation andfunctions of the related elements of structure and the combination ofparts and economies of manufacture, will become more apparent uponconsideration of the following description and the appended claims withreference to the accompanying drawings, all of which form a part of thisspecification, wherein like reference numerals designate correspondingparts in the various figures. It is to be expressly understood, however,that the drawings are for the purpose of illustration and descriptiononly and are not intended as a definition of the limits of theinvention. As used in the specification and in the claims, the singularform of “a,” “an,” and “the” include plural referents unless the contextclearly dictates otherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example system that horizon levels videos.

FIG. 2 illustrates an example method for horizon leveling videos.

FIG. 3 illustrates an example image capture device.

FIGS. 4A and 4B illustrate example images captured by an image capturedevice from different rotational positions.

FIG. 5A illustrates example horizon leveling of an image.

FIG. 5B illustrates example viewing windows to provide horizon-leveledviews of images.

FIG. 5C illustrates an example viewing window to provide horizon-leveledviews of images.

FIGS. 6A-6C illustrate example zoom curves.

FIG. 7 illustrates example non-distorted and distorted images.

FIG. 8 illustrates example sizes and aspect ratios of viewing windows.

DETAILED DESCRIPTION

FIG. 1 illustrates a system 10 for horizon leveling videos. The system10 may include one or more of a processor 11, an interface 12 (e.g.,bus, wireless interface), an electronic storage 13, and/or othercomponents. In some implementations, the system 10 may include one ormore optical elements, one or more image sensors, one or more positionsensors, and/or other components. Video information, rotational positioninformation, and/or other information may be obtained by the processor11. The video information may define a video. The video may includevideo content captured by an image capture device during a captureduration. The video content may have a progress length. The videocontent may include visual content captured at different moments withinthe capture duration. The visual content may be viewable as a functionof progress through the progress length. The visual content may have afield of view. The rotational position information may characterizerotational positions of the image capture device as a function ofprogress through the capture duration.

A viewing window for the visual content as a function of progressthrough the progress length may be determined by the processor 11 basedon the rotational positions of the image capture device as the functionof progress through the capture duration and/or other information. Theviewing window may define extents of the visual content to be includedwithin horizon-leveled visual content as the function of progressthrough the progress length. Determination of the viewing window mayinclude determination of a placement of the viewing window within thefield of view of the visual content as the function of progress throughthe progress length based on the rotational positions of the imagecapture device as the function of progress through the capture durationand/or other information. The horizon-leveled visual content may begenerated by the processor 11 based on the viewing window and/or otherinformation. The horizon-leveled visual content may include a punchoutof the extents of the visual content defined by the viewing window.Inclusion of the extents of the visual content defined by the viewingwindow within the horizon-leveled visual content may effectuate horizonleveling of the visual content.

The electronic storage 13 may be configured to include electronicstorage medium that electronically stores information. The electronicstorage 13 may store software algorithms, information determined by theprocessor 11, information received remotely, and/or other informationthat enables the system 10 to function properly. For example, theelectronic storage 13 may store video information defining a video,information relating to the video, information relating to videocontent, information relating to visual content, information relating toan image capture device, information relating to a capture duration,rotational position information for the video, information relating torotational positions of the image capture device, information relatingto a viewing window, information relating to placements of the viewingwindow, information relating to horizon-leveled visual content,information relating to a punchout of visual content, and/or otherinformation.

The processor 11 may be configured to provide information processingcapabilities in the system 10. As such, the processor 11 may compriseone or more of a digital processor, an analog processor, a digitalcircuit designed to process information, a central processing unit, agraphics processing unit, a microcontroller, an analog circuit designedto process information, a state machine, and/or other mechanisms forelectronically processing information. The processor 11 may beconfigured to execute one or more machine-readable instructions 100 tofacilitate horizon leveling videos. The machine-readable instructions100 may include one or more computer program components. Themachine-readable instructions 100 may include one or more of a videoinformation component 102, a position information component 104, aviewing window component 106, a generation component 108, and/or othercomputer program components.

Visual content may refer to content of image(s), video frame(s), and/orvideo(s) that may be consumed visually. For example, visual content maybe included within one or more images and/or one or more video frames ofa video. The video frame(s) may define the visual content of the video.That is, video may include video frame(s) that define the visual contentof the video. Video frame(s) may define visual content viewable as afunction of progress through the progress length of the video content. Avideo frame may include an image of the video content at a moment withinthe progress length of the video.

Visual content (of image(s), of video frame(s), of video(s)) with afield of view may be captured by an image capture device during acapture duration. A field of view of visual content may define a fieldof view of a scene captured within the visual content. A captureduration may be measured/defined in terms of time durations and/or framenumbers. For example, visual content may be captured during a captureduration of 60 seconds, and/or from one point in time to another pointin time. As another example, 1800 images may be captured during acapture duration. If the images are captured at 30 images/second, thenthe capture duration may correspond to 60 seconds. Other capturedurations are contemplated.

The system 10 may be remote from the image capture device or local tothe image capture device. One or more portions of the image capturedevice may be remote from or a part of the system 10. One or moreportions of the system 10 may be remote from or a part of the imagecapture device. For example, one or more components of the system 10 maybe carried by a housing, such as a housing of an image capture device.For instance, optical element(s), image sensor(s), and/or positionsensor(s) of the system 10 may be carried by the housing of the imagecapture device. The housing may carry other components, such as theprocessor 11 and/or the electronic storage 13. References to a housingof an image capture device may refer to the image capture device, andvice versa. For example, references to position/motion of a housing ofan image capture device may refer to position/motion of the imagecapture device, and vice versa.

An image capture device may refer to a device for recording visualinformation in the form of images, videos, and/or other media. An imagecapture device may be a standalone device (e.g., camera) or may be partof another device (e.g., part of a smartphone, tablet). FIG. 3illustrates an example image capture device 302. The image capturedevice 302 may include a housing 312, and the housing 312 may carry (beattached to, support, hold, and/or otherwise carry) an optical element304, an image sensor 306, a position sensor 308, a processor 310, and/orother components. Other configurations of image capture devices arecontemplated.

The optical element 304 may include instrument(s), tool(s), and/ormedium that acts upon light passing through theinstrument(s)/tool(s)/medium. For example, the optical element 304 mayinclude one or more of lens, mirror, prism, and/or other opticalelements. The optical element 304 may affect direction, deviation,and/or path of the light passing through the optical element 304. Theoptical element 304 may have a field of view 305. The optical element304 may be configured to guide light within the field of view 305 to theimage sensor 306. The field of view 305 may include the field of view ofa scene that is within the field of view of the optical element 304and/or the field of view of the scene that is delivered to the imagesensor 306. For example, the optical element 304 may guide light withinits field of view to the image sensor 306 or may guide light within aportion of its field of view to the image sensor 306. The field of view305 of the optical element 304 may refer to the extent of the observableworld that is seen through the optical element 304. The field of view305 of the optical element 304 may include one or more angles (e.g.,vertical angle, horizontal angle, diagonal angle) at which light isreceived and passed on by the optical element 304 to the image sensor306. In some implementations, the field of view 305 may be greater thanor equal to 180-degrees. In some implementations, the field of view 305may be smaller than or equal to 180-degrees.

The field of view 305 may be larger than a size of the punchout/viewingwindow used to generate horizon-leveled visual content. Horizon-leveledvisual content may refer to visual content depicting a leveled scene.Horizon-leveled visual content may refer to visual content includingdepiction of a scene that is leveled with respect to ground, sea, earth,and/or the horizon. A horizon may refer to a line that appears toseparate the visual content into two portions. A horizon may extendacross majority or entirety of the visual content. For example, ahorizon may refer to a line where the earth (e.g., ground, sea) appearsto meet the sky. Horizon-leveled visual content may refer to visualcontent that depicts a scene which appears to have been captured by anupright image capture device (non-tilted image capture device).

Portions of the visual content captured from light within the field ofview 305 may be presented on a display and/or used to generate a video.The portions of the visual content presented on the display/used togenerate a video may include those portions of the visual contentdefined by (e.g., within) a viewing window. A viewing window may defineextents of the visual content (e.g., of image(s)/video frame(s)) to beincluded within a punchout. The viewing window may be determined so thatthe visual content within the presentation/generated video appears to beleveled with respect to horizon. For example, the placement (rotation,location, shape, and/or size) of the viewing window within the field ofview of the visual content may be determined to compensate for rotation(e.g., tilt) of the image capture device 302 during capture such thatthe video appears to have been captured from an image capture device 302with less rotation. That is, the visual content captured by the imagecapture device 302 may be cropped to generate horizon-leveled visualcontent.

The image sensor 306 may include sensor(s) that converts received lightinto output signals. The output signals may include electrical signals.For example, the image sensor 306 may include one or more of acharge-coupled device sensor, an active pixel sensor, a complementarymetal-oxide semiconductor sensor, an N-type metal-oxide-semiconductorsensor, and/or other image sensors. The image sensor 306 may generateoutput signals conveying information that defines visual content of oneor more images and/or one or more video frames of a video. For example,the image sensor 306 may be configured to generate a visual outputsignal based on light that becomes incident thereon during a captureduration. The visual output signal may convey visual information thatdefines visual content having the field of view.

The position sensor 308 may include sensor(s) that measures experiencedpositions and/or motions. The position sensor 308 may convertexperienced positions and/or motions into output signals. The outputsignals may include electrical signals. For example, the position sensor308 may refer to a set of position sensors, which may include one ormore inertial measurement units, one or more accelerometers, one or moregyroscopes, one or more magnetometers, and/or other position sensors.The position sensor 308 may generate output signals conveyinginformation that characterizes positions and/or motions of the positionsensor 308 and/or device(s) carrying the position sensor 308, such asthe image capture device 302 and/or the housing 312.

For example, the position sensor 308 may be configured to generate aposition output signal based on positions of the image capture device302 during the capture duration. The position output signal may conveyposition information that characterizes positions of the image capturedevice 302 at different moments (points in time, time durations) withinthe capture duration. The position information may characterizepositions of the image capture device 302 based on specifictranslational and/or rotational positions of the image capture device302 and/or based on changes in translational and/or rotational positionsof the image capture device 302 as a function of progress through thecapture duration. That is, the position information may characterizetranslational and/or rotational positions of the image capture device302 and/or changes in translational and/or rotational positions (motion)of the image capture device 302 (e.g., direction, amount, velocity,acceleration) during the capture duration.

The position information may characterize and/or be used to determinethe tilt of the image capture device 302. Tilt of the image capturedevice 302 may refer to the extent to which image capture device 302 isin a sloping position. Tilt of the image capture device 302 may includerotation of the image capture device about its roll axis and/or otheraxes. For example, the position information may include the direction ofgravity on the image capture device 302 when visual content is capturedat different moments within the capture duration, information on theamount of angle by which the image capture device 302 is tilted withrespect to horizon, and/or other information that characterizes and/ormay be used to determine the tilt of the image capture device 302.

The position information may be determined based on signals generated bythe position sensor 308 and independent of the information/signalsgenerated by the image sensor 306. That is, position information may bedetermined without using visual content/images/videos generated by theimage sensor 306. Use of visual content/images/videos to determinepositions/motions of the image capture device 302 may be computationallyexpensive in terms of processing power, processing time, and/or batteryconsumption. Using the information/signals from the position sensor 308to determine positions/motions of image capture device 302 may becomputationally cheaper. That is, less processing power, processingtime, and/or battery consumption may be required when positions/motionsof the image capture device 302 are determined from theinformation/signals from the position sensor 308 than theinformation/signals from the image sensor 306. The position informationdetermined independent of the image information may be used to determinethe positions of the image capture device 302 during the captureduration.

In some implementations, the position information may include data fromthe position sensor (e.g., gyroscope data, accelerometer data) with timestamps per visual content capture at different moments. For example, theposition may include gyroscope data and/or accelerometer data perindividual video frames captured by the image capture device. In someimplementations, calibration of an inertial measurement unit may be usedto combine different data within the position information.

The processor 310 may include one or more processors (logic circuitry)that provide information processing capabilities in the image capturedevice 302. The processor 310 may provide one or more computingfunctions for the image capture device 302. The processor 310 mayoperate/send command signals to one or more components of the imagecapture device 302 to operate the image capture device 302. For example,the processor 310 may facilitate operation of the image capture device302 in capturing image(s) and/or video(s), facilitate operation of theoptical element 304 (e.g., change how light is guided by the opticalelement 304), and/or facilitate operation of the image sensor 306 (e.g.,change how the received light is converted into information that definesimages/videos and/or how the images/videos are post-processed aftercapture).

The processor 310 may obtain information from the image sensor 306and/or the position sensor 308, and/or facilitate transfer ofinformation from the image sensor 306 and/or the position sensor 308 toanother device/component. The processor 310 may be remote from theprocessor 11 or local to the processor 11. One or more portions of theprocessor 310 may be part of the processor 11 and/or one or moreportions of the processor 10 may be part of the processor 310. Theprocessor 310 may include and/or perform one or more functionalities ofthe processor 11 shown in FIG. 1.

For example, the processor 310 may use the position information tohorizon level visual content captured through the optical element 304and/or the image sensor 306. Horizon leveling of visual content mayrefer to modifying or punching out a portion of the visual content todepict a leveled scene. Horizon leveling of visual content may refer tomodifying or punching out a portion of the visual content so that thescene depicted within the visual content is leveled with respect toground, sea, earth, and/or the horizon. Horizon leveling of visualcontent may refer to modifying or punching out a portion of the visualcontent so that the depicted scene appears to have been captured by anupright image capture device (non-tilted image capture device).

Visual content having a field of view may be captured by the imagecapture device 302 during a capture duration. The processor 310 maydetermine the rotational positions of the image capture device 302 as afunction of progress through the capture duration and use the rotationalpositions of the image capture device 302 to determine placement of theviewing window within the field of view of the visual content. Theplacement of the viewing window within the field of view of the visualcontent may be defined by one or more of the rotation of the viewingwindow, the location of the viewing window within the field of view, theshape of the viewing window, and/or the size of the viewing window. Thevisual content defined by the viewing window may be used (e.g., cropped)to generate horizon-leveled visual content.

For example, the rotation of the viewing window may be changed as afunction of progress through the progress length of the visual contentbased on the rotational positions of the image capture device as afunction of progress through the capture duration to compensate for therotation (tilt) of the image capture device during capture duration.Different rotational extents of the visual content may be cropped tohorizon-level the visual content. The size of the viewing window may beincreased and/or decreased as a function of progress through theprogress length of the visual content based on the rotational positionsof the image capture device as a function of progress through thecapture duration and different sizes of extents of the visual contentmay be cropped to horizon-level the visual content.

Horizon leveling of visual content may be performed based on placementof the viewing window within the field of view of the visual content.The placement of the viewing window may compensate for the rotation(tilt) of the image capture device during the capture duration. Forexample, a viewing window having a smaller size than the field of viewof the visual content may be used to provide a punchout of the visualcontent. The punchout (cropped view) may be rotated within the field ofview to provide a horizon-leveled view of the visual content.

FIG. 4A illustrates example images 412, 414 captured by an image capturedevice 402 from different rotational positions. Gravity direction on theimage capture device 402 during capture of the images 412, 414 is shownby an arrow 404. The image 412 may be captured by the image capturedevice 402 while the image capture device 402 is leveled with respect toground. The image 412 may include visual content depicting a leveledscene within the field of view of the image capture device 402. Forexample, the image 412 may include visual content depicting a horizon450 that is leveled. The image 414 may be captured by the image capturedevice 402 while the image capture device 402 is rotated to the right.Tilt of the image capture device 402 may cause the visual contentcaptured by the image capture device 402 to depict a non-leveled scene.The image 414 may include visual content depicting a tilted scene withinthe field of view of the image capture device 402. For example, theimage 414 may include visual content depicting a horizon 450 that istilted. FIG. 4B illustrates how the images 412, 414 may be shown on adisplay. As shown in FIG. 4B, capture of the image 414 by the imagecapture device 404 in a tilted position may result in the horizon 450not being leveled within a presentation of the image 414.

The visual content captured by the image capture device may be leveledas the function of progress through the progress length based on therotational positions of the image capture device as the function ofprogress through the capture duration and/or other information. That is,the visual content captured by the image captured device may be rotatedto compensate for rotation of the image capture device during thecapture duration such that a view of the visual content includesdepiction of leveled scene. For example, readings from the positionsensor may be used to determine the direction of gravity when visualcontent is captured at different moments within the capture duration.The direction of gravity may be used to determine the amount of rotationthat needs to be applied to the visual content to level the depictionwithin the visual content. For example, the visual content may berotated so that the direction of gravity is pointed downwards.

The rotation of the visual content may be effectuated through rotationof the visual content itself and/or through orientation of the viewingwindow with respect to the field of view of the visual content. Forexample, FIG. 5A illustrates example horizon leveling of an image 514.The image 514 may be captured by an image capture device that is rotatedto the right with respect to ground. For example, the image 514 may becaptured by the image capture device 402 rotated to the right to capturethe image 414 (shown in FIG. 4A). Such rotation of the image capturedevice may result in the visual content including tilted depiction ofthe scene. Viewing the image 514 may show upright objects within thescene to be depicted as being tilted to the left. The visual content ofthe image 514 may be rotated based on the rotational position of theimage capture device during capture of the image 514 to providehorizon-leveled view of the scene. For example, the visual content ofthe image 514 may be rotated to the right to generate a leveled image516. The leveled image 514 may be leveled with respect to horizon andupright objects within the scene may appear as being upright. A viewingwindow 502 may be positioned in an upright manner within the visualcontent of the leveled image 516 to provide an upright punchout (leveledview) of the scene. As another example, a viewing window 504 may beplaced within unleveled visual content of the image 514. The viewingwindow 504 may be placed in a tilted manner within the unleveled visualcontent of the image 514 to provide an upright punchout (leveled view)of the scene.

Such automatic horizon leveling of the visual content based on imagecapture device position information may eliminate the need to manuallylevel images post capture and/or the need to level the image capturedevice during visual content capture. For instance, rather thanrequiring a user to manually edit images after capture to horizon levelthe visual content, the visual content may be automatically horizonleveled based on the position (e.g., rotation) of the image capturedevice during capture. Such automatic horizon leveling of the visualcontent may enable a user to “capture” horizon-level visual content withimage capture devices without a viewfinder and/or a display showing apreview of visual content to be captured. An image capture devicewithout a viewfinder and/or a display for image composition may be used(e.g., held, mounted) without regard for leveling the camera and stillgenerate stabilized visual content. That is, the image capture devicemay lack a view finder and/or a display for image composition, and thehorizon leveling of the visual content may be performed based on theposition (e.g., rotation) of the image capture device. Such automatichorizon leveling may be used to horizon level visual content whereachieving a leveled state for the image capture device may beimpractical (e.g., horizon leveling for images captured by an aerialimaging device).

The size of the viewing window (punchout) may be determined (e.g.,dynamically changed) based on the rotational positions of the imagecapture device. For example, rotation (e.g., tilt) of the visual contentmay be estimated based on readings from the position sensor of the imagecapture device. The rotational positions of the image capture device asthe function of progress through the capture duration may be used todetermine/estimate the offset of the visual content from horizon due torotation of the image capture device. The size of the viewing window maybe changed (e.g., increased, decreased) based on the amount of rotation.The size of the viewing window may be changed to take advantage ofdifferent amounts of the visual content that may be presented within ahorizon-leveled of the visual content based on different amounts ofrotation of the image capture device.

For example, rotation of the image capture device from beinghorizontally/vertically held to being tilted by 45 degrees from horizonmay result in the size of the viewing window being decreased. Rotationof the image capture device from being tilted by 45 degrees from horizonto being horizontally/vertically held result in the size of the viewingwindow being increased. Such dynamic change in the size of the viewingwindow may enable generation of horizon-leveled visual content thatincludes greater extent of the original visual than if a fixed-sizedviewing window is used. The horizon-leveled visual content may includedifferent extents of the original visual content based on the rotationof the image capture device during the capture duration. The size of theviewing window may be expressed in terms of field of view (field of viewof visual content versus field of view of the viewing window), in termsof megapixels (megapixel of the visual content versus megapixel of theviewing window), and/or in other terms.

FIG. 5B illustrates example viewing windows 506, 508 to providehorizon-leveled views of images 522, 524. The image 522 may be capturedby an image capture device that is leveled with respect to ground. Thevisual content of the image 522 may include a leveled depiction of ascene. A viewing window 506 may be placed within the field of view ofthe visual content of the image 522 to provide a leveled view of thescene. The image 524 may be captured by the image capture device that isrotated with respect to ground. The visual content of the image 524 mayinclude a tilted depiction of a scene. A viewing window 508 may beplaced within the field of view of the visual content of the image 524to provide a leveled view of the scene.

Different amounts of rotation of the image capture device during captureof the images 522, 524 may result in different sizes of the viewingwindows 506, 508. The viewing windows 506, 508 may have a four-by-threeaspect ratio (4:3). The viewing windows 506, 508 may have the maximumsize that may be used within the images 522, 524, to provide a leveledview of the scene. Using a larger viewing window may result in thevisual content not including sufficient information (e.g., pixels) toproperly fill the view (e.g., fill the display screen).

The viewing window 506 may have a larger size (larger viewing size) thanthe viewing window 508. The image 522 being captured by the imagecapture device leveled with respect to ground may enable the largerviewing size of the viewing window 506. The image 524 being captured bythe image capture device rotated with respect to ground may result inthe smaller viewing size of the viewing window 508. Thus, the rotationof the image capture device during visual content capture maydetermine/change the maximum size of the viewing window that may be usedto provide a leveled view of the scene captured within the visualcontent. Changes in the viewing size (sizes of the viewing window)between different images may simulate changes in zoom of the visualcontent.

In some implementations, the changes in the maximum size of the viewingwindow (that may be used to horizon level visual content) based onrotation of the image capture device may be used to change the zoomlevel of the image capture device used to capture visual content. Use ofbuttons, switches, dials, and/or other features of the image capturedevice that needs to be engaged to change the zoom level of the imagecapture device may interfere with visual content capture. For example, auser engaging a button, a switch, and/or a dial to control the zoomlevel may take the user's attention away from the visual content beingcaptured and/or may adversely impact the positioning of the imagecapture device (e.g., cause the image capture device to shake).Requiring such interaction by the user with the image capture device maytake time. For example, when a user wishes to zoom-in and/or zoom-out,the user may need to locate the corresponding zoom button/switch/dialand engage the zoom button/switch/dial to change the zoom level.

Rather than requiring such interaction by the user with the imagecapture device, the zoom level of the image capture device may bechanged based on rotation of the image capture device. For example, thezoom-level of the image capture device may correspond to the maximumsize of the viewing window that may be used to stabilized visual contentcapture by the image capture device. The image capture device maymonitor the rotational positions of the image capture device duringcapture to determine the zoom level of the visual content capture. Whenthe image capture device is rotated away from beinghorizontally/vertically held towards being tilted by 45 degrees fromhorizon, the zoom level of the image capture device may be increased(e.g., larger than 1×) with the extent of the visual content that iscaptured including and/or being smaller than the maximum size of theviewing window allowed based on the image capture device rotation. Whenthe image capture device is rotated away from being tilted by 45 degreesfrom horizon, the zoom level of the image capture device may bedecreased (e.g., towards 1×) with the extent of the visual content thatis captured including and/or being smaller than the maximum size of theviewing window allowed based on the image capture device rotation.

For example, referring to FIG. 5B, the image capture device may be usedto capture a video (visual content of video frames). The capture of thevideo may start with the image capture device leveled to capture theimage 522 (initial video frame). During the capture of the video, theimage capture device may be rotated to capture the image 524 (subsequentvideo frame). The rotation of the image capture device from beingleveled to being tilted may cause the zoom level of the image capturedevice to be increased (with the extent of the visual content that iscaptured including and/or being smaller than the maximum size of theviewing window allowed based on the rotation of the image capturedevice). The rotation of the image capture device back to being leveledmay cause the zoom level of the image capture device to be decreased.

Changing the zoom level of the image capture device based on therotation of the image capture device may allow the user to capturevisual content with different zoom levels without interfering with thevisual content capture (e.g., not having to take a hand/fingers awayfrom holding the image capture device to operate the zoom button). Suchchanging of the zoom level may allow the user to change zoom level bychanging how the image capture device is being held. Such changing ofthe zoom level may allow the user to change zoom level by simplyrotating the image capture device and may not require the user to haveto find and/or engaged with zoom button/switch/dial to change the zoomlevel.

In some implementations, a viewing window with a fixed viewing size maybe used to provide a leveled view of scene depicted within the visualcontent. Using a viewing window with a fixed viewing size may enablegeneration of images/videos that appears to have been captured using thesame zoom level. For example, using a viewing window with a fixedviewing size for a video may not simulate changes in zoom.

FIG. 5C illustrates an example viewing window 510 to providehorizon-leveled views of images 532, 534. The image 532 may be capturedby an image capture device that is leveled with respect to ground. Thevisual content of the image 532 may include a leveled depiction of ascene. The viewing window 510 may be placed within the field of view ofthe visual content of the image 532 to provide a leveled view of thescene. The image 534 may be captured by the image capture device that isrotated with respect to ground. The visual content of the image 534 mayinclude a tilted depiction of a scene. The viewing window 510 may beplaced within the field of view of the visual content of the image 534to provide a leveled view of the scene.

Different amounts of rotation of the image capture device during captureof the images 522, 524 may not result in different sizes of the viewingwindow 510. Rather, the viewing window 510 may have a fixed size that isable to provide a leveled view of the visual content regardless of therotation of the age capture device during capture of the images 522,524. For example, the images 522, 524 may have a square shape(one-by-one aspect ratio) with individual sides have length L. Theviewing window 510 may have a square shape with individual sides havelength 0.7 L. Using a viewing window with fixed size between differentimages may simulate the zoom of the visual content remaining constant.Other sizes, aspect ratios, and dimensions of viewing windows arecontemplated.

Referring back to FIG. 1, the processor 11 (or one or more components ofthe processor 11) may be configured to obtain information to facilitatehorizon leveling videos. Obtaining information may include one or moreof accessing, acquiring, analyzing, determining, examining, identifying,loading, locating, opening, receiving, retrieving, reviewing, storing,and/or otherwise obtaining the information. The processor 11 may obtaininformation from one or more locations. For example, the processor 11may obtain information from a storage location, such as the electronicstorage 13, electronic storage of information and/or signals generatedby one or more sensors, electronic storage of a device accessible via anetwork, and/or other locations. The processor 11 may obtain informationfrom one or more hardware components (e.g., an image sensor, a positionsensor) and/or one or more software components (e.g., software runningon a computing device).

The video information component 102 may be configured to obtain videoinformation and/or other information. The video information may define avideo. The video information may define a video by including informationthat defines one or more content, qualities, attributes, features,and/or other aspects of the video. For example, video information maydefine a video by including information that makes up the content of thevideo and/or information that is used to determine the content of thevideo. For instance, the video information may include information thatmakes up and/or is used to determine the arrangement of pixels,characteristics of pixels, values of pixels, and/or other aspects ofpixels that define visual content of the video. For example, the videoinformation may include information that makes up and/or is used todetermine pixels of video frames of the video. Other types of videoinformation are contemplated.

The video information component 102 may obtain video informationdefining a video while the video is being captured by an image capturedevice. The video information component 102 may obtain video informationdefining a video after the video has been captured and stored in memory(e.g., the electronic storage 13).

In some implementations, the video information component 102 may obtainvideo information based on user interaction with a userinterface/application (e.g., video editing application, video playerapplication), and/or other information. For example, a userinterface/application may provide option(s) for a user to select one ormore videos that are to be horizon-leveled and/or played. The videoinformation defining the video may be obtained based on the user'sselection of the video content through the user interface/videoapplication. Other selections of video are contemplated.

The video may include video content captured by an image capture deviceduring a capture duration. The video content may have a progress length.The progress length of the video content may correspond to the captureduration. The progress length of the video content may be determinedbased on the capture duration. The progress length of the video contentmay be same as the capture duration, shorter than the capture duration(e.g., playback rate of the video content is faster than the capturerate of the video content), and/or longer than the capture duration(e.g., playback rate of the video content is slower than the capturerate of the video content).

The video content may include visual content captured at differentmoments within the capture duration. The visual content may be viewableas a function of progress through the progress length. The visualcontent may have a field of view, such as the field of view 305 shown inFIG. 3. The video content may include other content, such as audiocontent. Audio content may be captured during capture of the visualcontent (e.g., recording of sound captured with the images/video frames)and/or may be captured separately from the capture of the visual content(e.g., song/music provide accompaniment for the playback of theimages/video frames, sound recorded before/after capture of theimages/video frames).

The position information component 104 may be configured to obtainrotational position information for the video and/or other information.The rotational position information may characterize rotationalpositions of the image capture device that captured the video/videocontent as a function of progress through the capture duration for thevideo/video content. The rotational position information may describeand/or define the rotational positions of the image capture device atdifferent moments within the capture duration and/or changes inrotational positions (motion) of the image capture device at differentmoments within the capture duration. For example, the rotationalposition information may characterize and/or be used to determine thetilt of the image capture device that captured the video/video content.For instance, the rotational position information may include thedirection of gravity on the image capture device at different momentswithin the capture duration, information on the amount of angle by whichthe image capture device is tilted with respect to horizon, and/or otherinformation that characterizes and/or may be used to determine the tiltof the image capture device.

The position information component 104 may obtain rotational positioninformation for the video while the video is being captured by the imagecapture device. The position information component 104 may obtainrotational position information for the video during generation of theposition output signal by the position sensor. The position informationcomponent 104 may obtain rotational position information for the videoafter the video/position information has been captured and stored inmemory (e.g., the electronic storage 13). In some implementations, theposition information component 104 may be configured to obtain otherposition information (e.g., translational position information).

The viewing window component 106 may be configured to determine aviewing window for the visual content as a function of progress throughthe progress length. One or more of rotation, location, shape, size,and/or other characteristics of the viewing window may be determined fordifferent moments within the progress length of the visual content. Theviewing window may be determined based on the rotational positions ofthe image capture device as the function of progress through the captureduration and/or other information. One or more of rotation, location,shape, size, and/or other characteristics of the viewing window may bedetermined for different moments within the progress length of thevisual content based on the rotational positions of the image capturedevice during corresponding moments within the capture duration and/orother information.

A viewing window may be characterized by viewing directions, viewingsizes (e.g., viewing zoom, viewing magnification), viewing rotations,and/or other information. A viewing direction may define a direction ofview for visual content. A viewing direction may define the angle/visualportion of the visual content at which the viewing window may bedirected. A viewing direction may define the location of the viewingwindow within the field of view of the visual content. Changes in theviewing direction as the function of progress through the progresslength may effectuate movement (e.g., panning) of the viewing windowwithin the field of view of the visual content.

A viewing size may define a size of the viewing window. A viewing sizemay define a size (e.g., size, magnification, viewing angle) of viewableextents of visual content. A viewing size may define the dimensions ofthe viewing window. In some implementations, a viewing size may definedifferent shapes of the viewing window/viewable extents. For example, aviewing window may be shaped as a rectangle, a triangle, a circle,and/or other shapes. A viewing size may define different aspect ratiosof the viewing window (e.g., 4:3 aspect ratio, 16:9 aspect ratio, 1:1aspect ratio). Changes in the viewing size (sizes of the viewing window)as the function of progress through the progress length may simulatechanges in zoom of the visual content. The viewing size may be increasedto simulate decrease in zoom of the visual content. The viewing size maybe decreased to simulate increase in zoom of the visual content.

A viewing rotation may define a rotation of the viewing window. Aviewing rotation may define one or more rotations of the viewing windowabout one or more axis. For example, a viewing rotation may be definedbased on rotation about an axis corresponding to a viewing direction(e.g., roll). Changes in the viewing rotation as the function ofprogress through the progress length may effectuate rotation of theviewing window within the field of view of the visual content. Therotation of the viewing window may compensate for rotation of the imagecapture device during capture duration.

A viewing window may define one or more extents of the visual content. Aviewing window may define extents of the visual content to be includedwithin horizon-leveled visual content as the function of progressthrough the progress length. A viewing window may define which portionsof the visual content are included within the horizon-leveled visualcontent at different moment within the progress length. Inclusion of theextents of the visual content defined by the viewing window within thehorizon-leveled visual content may effectuate horizon leveling of thevisual content.

A viewing window may be used to provide a punchout of the visualcontent. A punchout of the visual content may refer to an output of oneor more portions of the visual content for presentation (e.g., currentpresentation, future presentation based on video generated using thepunchout). A punchout of the visual content may refer to extents of thevisual content that is obtained for viewing and/or extraction. Theextents of the visual content viewable/extracted within the viewingwindow may be used to provide views of different spatial portions of thevisual content.

For example, the visual content may include a field of view, and thepunchout of the visual content may include the entire extent of thevisual content (the visual content within the entire field of view) orone or more extents of the visual content (the visual content within oneor more portions of the field of view). A viewing window may defineextents of the visual content to be included within a punchout of thevisual content as the function of progress through the progress length.A viewing window may correspond to the entire progress length or for oneor more portions (e.g., portions including moments of interest) of theprogress length. The punchout of the visual content may be presented onone or more displays, included in one or more videos, and/or otherwiseused for presenting horizon-leveled view of the visual content.

For example, determination of the viewing window may includedetermination of a placement of the viewing window within the field ofview of the visual content as the function of progress through theprogress length based on the rotational positions of the image capturedevice as the function of progress through the capture duration and/orother information. The placement of the viewing window may refer to howthe viewing window is positioned within the field of view of the visualcontent. The placement of the viewing window may be determined by one ormore of rotation, location, shape, size, and/or other characteristics ofthe viewing window. For example, the placement of the viewing window maybe determined as described above with respect to FIGS. 5A-5C.

In some implementations, the determination of the placement of theviewing window within the field of view of the visual content mayinclude determination of a rotation of the viewing window within thefield of view of the visual content. The rotation of the viewing windowwithin the field of view of the visual content may be determined as afunction of progress through the progress length based on the rotationalpositions of the image capture device as the function of progressthrough the capture duration and/or other information. For example, thevisual content may be rotated to level the visual content as thefunction of progress through the progress length based on the rotationalpositions of the image capture device as the function of progressthrough the capture duration and/or other information. Rotation of thevisual content may be determined for different moments within theprogress length of the visual content. The visual content may be rotatedto compensate for rotation of the image capture device during thecapture duration such that a view of the visual content includesdepiction of leveled scene. The rotation of the visual content may beeffectuated through rotation of the visual content itself and/or throughorientation of the viewing window with respect to the field of view ofthe visual content. For example, the visual content may be rotated tolevel the visual content as described above with respect to FIGS. 5A-5C.

The amount and the direction by which the visual content is rotated maybe inverse of the amount and the direction by which the rotationalposition of the image capture device is offset from being leveled. Forexample, based on the image capture device being tilted to the right by30 degrees during capture of the visual content, the visual content maybe rotated to the left by 30 degrees. In some implementations, thedirection of gravity for visual content capture at different moments maybe used to determine the amount and direction of rotation that needs tobe applied to the visual content to level the depiction within thevisual content. For example, the visual content may be rotated so thatthe direction of gravity is pointed downwards.

In some implementations, the rotation of the visual content may takeinto account visual analysis of the visual content. For example, theobject detection, such as through machine-learning image analysis, maybe used to detect horizon within an image and the visual content of theimage may be rotated to level the detected horizon within the image. Asanother example, the image capture device rotation may be used toperform an initial horizon leveling of the image and the visual analysismay be used to improve the horizon leveling of the image. The initialhorizon leveling of the image via the image capture device rotation mayfacilitate use of visual analysis to detect horizon within the image.For instance, the image may have been captured with multiple lines thatmay be interpreted as horizon within the image. The lines may havedifferent slopes within the image. The initial horizon leveling of theimage via the image capture device rotation may decreasing the slope ofthe line representing the horizon while increasing the slope of line(s)representing other things within the image. Such initial horizonleveling of the image may make it easier to detect the actual horizonwithin the image and/or reduce false detection of horizon within theimage.

In some implementations, the rotation of the visual content make takeinto account other rotations performed on the visual content. Forinstance, electronic image stabilization may be performed to removeunwanted movement (e.g., shakiness) in the images. Electronic imagestabilization may perform one or more rotations of the visual content toremove unwanted rotation in the images. The rotation of the visualcontent to perform horizon leveling may take into account therotation(s) performed by the electronic image stabilization in additionto the rotation of the image capture device to level the images. Therotation of the visual content to perform horizon leveling may beincorporated with the electronic image stabilization so that rotation ofthe visual content to remove unwanted rotation and to increase horizonleveling in the images are performed together.

In some implementations, the determination of the viewing window mayinclude determination of the size of the viewing window (viewing size).The size of the viewing window may be determined as the function ofprogress through the progress length based on the rotational positionsof the image capture device as the function of progress through thecapture duration and/or other information. The size of the viewingwindow may be determined for different moments within the progresslength of the visual content. The size of the viewing window may bedetermined to take into account the maximum size of the viewing windowallowed based on the image capture device rotation. The size of theviewing window may be determined to be the same or smaller than themaximum size of the viewing window allowed based on the image capturedevice rotation. In some implementations, the size of the viewing windowmay change as the function of progress through the progress length tosimulate changes in zoom for the visual content. For example, the sizeof the viewing window may be determined as described above with respectto FIGS. 5B-5C.

In some implementations, the viewing window may be determined to havethe maximum size of the viewing window allowed based on the imagecapture device rotation as the function of progress through the progresslength. That is, the viewing window may have the maximum sizes that aredetermined based on the rotational positions of the image capture deviceat different moments during the capture duration. For example, FIG. 6Aillustrates an example zoom curve 600. The zoom curve 600 may includevalues as a function of the progress length, where the values reflectthe amount of minimum zoom of the visual content (maximum size of theviewing window) that includes sufficient information to provide aleveled view of captured scene (e.g., not include missing pixels withinthe viewing window. The values of the zoom curve 600 may reflect themaximum size of the viewing window that may be used with the viewingwindow not extending beyond the field of view of the visual content.

The lowest zoom may correspond to no zooming of the visual content (lxzoom). For example, the entirety of the captured visual content and/orcropped visual content that extends across at least one dimension of thevisual content may be included within the horizon-leveled visualcontent. Higher zooming of the visual content may result in smallerspatial portions of the captured visual content being included withinthe horizon-leveled visual content. The size of the viewing window mayincrease with decrease in zoom. The size of the viewing window maydecrease with increase in zoom. Using the zoom values of the zoom curvemay result in pronounced (e.g., rapid, jittery) changes in zoom/viewingwindow size within the horizon-leveled visual content. The zoom effectmay be very pronounced within the horizon-leveled visual content if thevisual content was captured by an image capture device undergoingjittery/rapid rotations.

In some implementations, the viewing window may be determined to have aminimum of the maximum sizes of the viewing window allowed over theprogress length. That is, the viewing window may have the smallest ofthe maximum viewing window size that are determined over the progresslength based on the rotational positions of the image capture device atdifferent moments during the capture duration. For example, FIG. 6Billustrates an example maximum zoom curve 602. The maximum zoom curve602 may include a single value over the progress length, where thesingle value reflects the maximum cropping size of the visual contentthat allows horizon leveling of the visual content over the entireprogress length with the viewing window not extending beyond the fieldof view of the visual content. The value of the maximum zoom curve 602may be equal to or greater than the maximum value of the zoom curve 600.Using a single size of the viewing window over the progress length mayresult in the horizon-leveled visual content not including zoomingeffects. Such a determination of the viewing size may be beneficial forvisual content captured by an image capture device with frequentinstances of rotation (e.g., video captured while spinning in the air,video captured by an image capture device inside a spinning ball).However, high quality visual content (high resolution image) may need tobe captured by the image capture device to provide a pleasant punchoutwith a small viewing window size (narrow field of view). Moreover,visual content may be cropped more than needed to provide horizonleveling.

In some implementations, the viewing window may be determined to havesmoothed changes in the maximum size of the viewing window allowed asthe function of progress through the progress length. That is, themaximum sizes of the viewing window allowed based on the image capturedevice rotation may be smoothed to determine the sizes of the viewingwindow used for horizon leveling. Smoothing of the changes in themaximum sizes as the function of progress through the progress lengthmay include removing high frequencies changes in the maximum sizes.Smoothing of the changes in the maximum sizes may enable horizonleveling that eases in and out of different sizes of viewing window byanticipating upcoming changes in the maximum sizes. Rather thansimulating a constant zoom or a zoom with pronounced (e.g., rapid.Jittery) changes, the smoothing of the changes in the maximum sizes maysimulate smoothed/gradual changes in zoom.

In some implementations, smoothing of the changes in the maximum sizesas the function of progress through the progress length may includeinsertion of one or more ramping changes in maximum sizes. For example,based on the changes in maximum sizes including jittery increase in sizeover a portion of the progress length, the jittery increase in size maybe replaced with a smooth ramp that increases in size. Based on thechanges in maximum sizes including jittery decrease in size over aportion of the progress length, the jittery decrease in size may bereplaced with a smooth ramp that decreases in size.

For example, FIG. 6C illustrates an example smoothed zoom curve 604. Thesmoothed zoom curve 604 may smoother changes in zoom than the zoom curve600. The value of the smoothed zoom curve 604 may be equal to and/orgreater than the maximum value of the zoom curve 600. Using a smoothedzoom curve may allow for rapid changes in zoom to be replaced withsmoothed zooms, creating a more cinematic feel to the horizon-leveledvideo than use of the zoom curve 600. Smoothing of the zoom curve 600may include analysis of the changes in the sizes of the viewing windowas defined by the zoom curve 600. Based on the analysis, the viewingwindow may be artificially made smaller and/or larger (e.g.,artificially zoom-in and/or zoom-out) during moments that do not requirethe change in viewing window size to ramp-up and/or ramp-down to theneeded viewing window size.

Use of different zoom curves may enable generation of horizon-leveledvisual content with different styles of zoom. For example,horizon-leveled visual content with smoothed/dampened style of zoom maybe generated based on use of a smooth zoom curve (e.g., the smoothedzoom curve 604). Horizon-leveled visual content with maximum zoom/nochange in zoom style may be generated based on use of a maximum zoomcurve (e.g., the maximum zoom curve 602). Horizon-leveled visual contentwith zoom that follows the rotation of the image capture device may begenerated based on the use of a non-modified zoom curve (the zoom curve600).

Use of different zoom curves/styles may be selected by the user and/orautomatically selected. For example, a particular zoom curve/style maybe selected for use in generating horizon-leveled visual content basedon user interaction with a user interface/application (e.g., videoediting application, video player application), and/or otherinformation. For instance, a user interface/application may provideoption(s) for a user to select one or more of the zoom curves/styles tobe used for horizon leveling of visual content. As another example, aparticular zoom curve/style may be selected for use in generatinghorizon-leveled visual content based on the rotational positions of theimage capture device as a function of progress through the captureduration, the maximum sizes of the viewing window determined as thefunction of progress through the progress length based on the rotationalpositions of the image capture device, on the content captured withinthe visual content (e.g., activity identification, subjectidentification, face identification, emotion identification), and/orother information. Other selections of zoom curves/styles arecontemplated.

In some implementations, the determination of the placement of theviewing window within the field of view of the visual content mayinclude determination of a location of the viewing window within thefield of view of the visual content. The location of the viewing windowmay be determined for different moments within the progress length ofthe visual content. The location of the viewing window within the fieldof view of the visual content may determine framing of the visualcontent. In some implementations, shape, size, and/or othercharacteristics of the viewing window may be selected to determine theframing of the visual content. The extent of the visual contenteddefined by the viewing window may define how the portion of the visualcontent within the viewing window is framed for inclusion in thehorizon-leveled visual content.

For example, one or more of location, shape, size, and/or othercharacteristics of the viewing window may be determined based on contentdetection and/or other information. Content detection may includedetection of one or more things (e.g., persons, faces, objects,environment, emotion, activity, action) depicted within the visualcontent. One or more of location, shape, size, and/or othercharacteristics of the viewing window may be determined based on thecontent detection so that the horizon-leveled visual content includesportions of the visual content framed based on one or more thingsdepicted within the visual content. For example, the shape of theviewing window may be selected as being rectangular or circular and/orto have a particular aspect ratio (e.g., 4:3 aspect ratio, 16:9 aspectratio, 1:1 aspect ratio) based on user the content captured within thevisual content (e.g., detected using activity identification, subjectidentification, face identification, emotion identification), and/orother information. For instance, a particular aspect ratio may beselected to include depiction of one or more particular things (e.g., aperson, an activity) within the viewing window, a particular aspectratio may be selected to include depiction of one or more particularthings (e.g., a face) in a particular manner within the viewing window,and/or a particular aspect ratio may be selected to maximize the extentof the visual content included within the viewing window. In someimplementations, the viewing window may be positioned to include one ormore particular depictions (e.g., faces, smiles) within the viewingwindow.

In some implementations, the location of the viewing window may bechanged as a function of progress through the progress length tosimulate panning in the horizon-leveled visual content. For example, theviewing window may be moved within the field of view of the visualcontent while not extending beyond the field of view of the visualcontent. Movement of the viewing window may simulate panning of theimage capture device during visual content capture (e.g., panning up anddown, side to side). For example, a video may include at differentmoment depiction of different things of interest in different spatiallocations. The location of the viewing window may be changed to pan fromone thing of interest to another thing of interest. Other changes in theplacement of the viewing window are contemplated.

The generation component 108 may be configured to generatehorizon-leveled visual content based on one or more viewing windowand/or other information. The horizon-leveled visual content may includea punchout of the extent(s) of the visual content defined by the viewingwindow(s). Inclusion of the extent(s) of the visual content defined bythe viewing window(s) within the horizon-leveled visual content mayeffectuate horizon leveling of the visual content. Inclusion of theextent(s) of the visual content defined by the viewing windows in videomay effectuate horizon leveling of the visual content via selectivecropping. The portions of the visual content that are cropped forhorizon leveling may depend on the rotational positions of the imagecapture device during the capture duration and/or other information.

Inclusion of the extent(s) of the visual content defined by the viewingwindow(s) within the horizon-leveled visual content may result in thehorizon-leveled visual content depicting a leveled scene (depiction of ascene that is leveled with respect to ground, sea, earth, and/or thehorizon). Inclusion of the extent(s) of the visual content defined bythe viewing window(s) within the horizon-leveled visual content mayresult in the horizon-leveled visual content appearing to have beencaptured by an upright image capture device (non-tilted image capturedevice).

Horizon-leveled visual content may be generated to provide a view inwhich the visual content is leveled (e.g., a horizon depicted within thevisual content is leveled, visual content is leveled with respect tohorizon). Horizon-leveling may include using smaller portions/extents ofthe visual content to provide a punchout view of the visual content thatcreates a more horizon-leveled view than when viewing the entirety ofthe visual content. Generation of horizon-leveled visual content mayinclude using smaller visual portions of the captured visual content(e.g., smaller visual portions of images/video frames defined by theviewing window) to provide a punchout view of the captured visualcontent. The horizon-leveled visual content may provide a morehorizon-leveled view of the visual content than when the entirety of thevisual content is presented.

In some implementations, the visual content may include one or moredistortions. A distortion may refer to deviation from rectilinearprojection. In rectilinear projection, a straight line within a scenedepicted within the visual content may appear as a straight line. Adistortion may cause deviation of the visual content from rectilinearprojection such that a straight line within a scene depicted within thevisual content appears as a curved line. For example, the distortion mayinclude a radial distortion, a barrel distortion, a pincushiondistortion, and/or other distortions. The distortion(s) of the visualcontent may reduce impact of an off-axis horizon depicted within thehorizon-leveled visual content. An off-axis horizon may refer to ahorizon depicted within the horizon-leveled visual content that deviatesfrom a true horizon (e.g., a straight horizonal line) within the image.The horizon-leveled visual content may include an off-axis horizon basedon imperfect horizon leveling of the visual content. For example, theamount of rotation performed on the visual content may be inaccurateand/or imprecise, and the horizon leveling of the visual content may beimperfect.

An off-axis horizon may be less noticeable within visual content thatincludes a distortion than within visual content that does not includethe distortion. FIG. 7 illustrates example non-distorted image 702 anddistorted images 704, 706. The non-distorted image 702 may include thevisual content arranged/captured using a rectilinear projection. Thevisual content of the non-distorted image 702 may not include adistortion and a straight line within a scene depicted within the visualcontent may appear as a straight line. In the non-distorted image 702,an off-axis horizon may be quite noticeable.

The distorted image 704, 706 may include visual contentarranged/captured using a non-rectilinear projection. For example, thedistorted image 704 may include visual content arranged/captured using abarrel distortion and the distorted image 706 may include visual contentarranged/captured using a pincushion distortion. In the barreldistortion, image magnification may decrease with distance from theoptical axis, simulating an image mapped around a sphere/barrel. In thepincushion distortion, image magnification may increase with distancefrom the optical axis, causing depictions within the visual content tobe bowed inwards, towards the center of the image. Existence of suchdistortion(s) within an image may create curves within the image, whichmay make an off-axis horizon less noticeable than in an image withoutdistortion. With respect to the barrel distortion, an off-axis horizonmay be bent towards the true horizon and reduce the impact of imperfecthorizon leveling. Images with distortion may increase the tolerance foran off axis-horizon, and the images may appear to be level enough withslight offset. Thus, images with distortion may enable use of horizonleveling with less accuracy/precision to produce acceptable results.

In some implementations, the visual content may include a distortionbased on capture of the visual content through a wide field of viewoptical element. For example, the visual content may include a barrelroll distortion based on use of a wide angle lens to capture the visualcontent. The wide-angle lens may cause the visual content to include thedistortion when the visual content is captured.

In some implementations, the visual content may include a distortionbased on application of the distortion to non-distorted visual content.Non-distorted visual content may refer to visual content withoutdistortion. For example, non-distorted visual content may be capturedthrough a narrow field of view optical element. The distortion may beapplied to the non-distorted visual content based on the visual contentincluding the non-distorted visual content and/or other information. Forexample, the visual content and/or metadata associated with the visualcontent may be analyzed to determine existence of and/or type ofdistortion within the visual content. Based on the visual content notincluding a distortion (e.g., any distortion, a particular distortion, abarrel distortion), a distortion that reduces the impact of an off-axishorizon depicted within the visual content may be applied to the visualcontent.

For instance, an image may not include a barrel distortion based on useof a narrow angle lens to capture the image. The image and/or themetadata for the image may be analyzed to determine whether the imagecontains barrel roll distortion. For example, the image may be analyzedto determine whether the image contains barrel roll distortion and/orthe image capture device information/optical element informationcontained in the metadata may indicate whether the image contains barrelroll distortion. Based on the analysis determining that the image doesnot include barrel roll distortion, the barrel roll distortion may beapplied to the image. As another example, the image and/or the metadatafor the image may be analyzed to determine that the distortion withinthe image does not reduce the impact of an off-axis horizon depictedwithin the visual content. The distortion within the image may bechanged to include a desired distortion that reduces the impact of anoff-axis horizon depicted within the visual content (e.g., via a directtransformation that changes the existing distortion to the desireddistortion; via an indirect transformation that removes the existingdistortion and then applies the desired distortion).

In some implementations, the viewing window(s) used to generate thehorizon-level visual content may have a one-by-one aspect ratio. Theone-by-one aspect ratio of the viewing window(s) may reduce impact of anoff-axis horizon depicted within the horizon-leveled visual content. Anoff-axis horizon may be less noticeable within a one-by-one aspect ratiopresentation of visual content than other aspect ratio presentation ofthe visual content.

FIG. 8 illustrates example sizes and aspect ratios of viewing windows802, 804, 806. The viewing window 802 may have a wide aspect ratio(e.g., 16:9). The viewing windows 804, 806 may have a one-by-one aspectratio (1:1). The viewing window 804 may be larger than the viewingwindow 806. The width and height of the viewing window 804 may be thesame as the width of the viewing window 802. The width and height of theviewing window 806 may be the same as the height of the viewing window802. An off-axis horizon depicted within the viewing window 802 may bemore prominent than off-axis horizons depicted within the viewingwindows 804, 806. Wider aspect ratio, such as the aspect ratio of theviewing window 802, may draw attention to the horizon line because themajority of the image is allocated to the width of the image.

In some implementations, the visual content may have a one-by-one aspectratio. The use of the one-by-one aspect ratio in capturing visualcontent may enable horizon leveling when the image capture device isrotated by 90 degrees without adversely impacting the overall imagecomposition. In comparison, use of other aspect ratio (e.g., 4:3, 16:9)in capturing visual content may result in change of the imagecomposition between landscape composition and portrait composition whenthe image capture device is rotated by 90 degrees.

In some implementations, horizon-leveled visual content may be generatedas images/video frames including extent(s) of the visual content definedby the viewing window(s). Horizon-leveled visual content may begenerated as outputs of portions of the visual captured by the imagecapture device, with the outputted portions including extent(s) of thevisual content defined by the viewing window(s).

In some implementations, the horizon-leveled visual content may begenerated as an encoded version/copy of the horizon-leveled visualcontent (e.g., encoded video file) and/or a director track that definesthe extents of the visual content to be used during playback to providea horizon-leveled view of the visual content. For example, thehorizon-leveled visual content may be generated as video frames in avideo file, and the video file may be opened in a video player forpresentation of the horizon-leveled visual content. The horizon-leveledvisual content may be generated as instructions to render the visualcontent for presentation. The instructions (e.g., director track) maydefine which visual portions of the visual content (images, videoframes) should be included within the presentation of the video content.The instructions may define which visual portions of the visual contentshould be included during playback to provide a horizon-leveled view ofthe visual content. The instructions may include information on thelocation, size, shape, and/or rotation of the punchout of images/videoframes to be used to as a function progress through the progress lengthof the visual content to provide a horizon-leveled view of theimages/video frames. A video player may use the instructions to retrievethe relevant visual portions of the images/video frames when the visualcontent is opened and/or is to be presented.

The generation component 108 may be configured effectuate storage of thehorizon-leveled visual content and/or other information in one or morestorage media. For example, the horizon-leveled visual content (e.g.,video file, director track) may be stored in the electronic storage 13,remote storage locations (storage media located at/accessible through aserver), and/or other locations. In some implementations, the generationcomponent 108 may effectuate storage of the horizon-leveled visualcontent through one or more intermediary devices. For example, theprocessor 11 may be located within a computing device without aconnection to the storage device (e.g., the computing device lacksWiFi/cellular connection to the storage device). The generationcomponent 108 may effectuate storage of the horizon-leveled visualcontent through another device that has the necessary connection (e.g.,the computing device using a WiFi/cellular connection of a paired mobiledevice, such as a smartphone, tablet, laptop, to store information inone or more storage media). Other storage locations for and storage ofthe horizon-leveled visual content are contemplated.

In some implementations, the processor 11 may represent multipleprocessors, and at least one of the processors may be a remote processorlocated remotely from the housing of the image capture device (e.g., theimage capture device 302). One or more of the functionalities of thecomponents 102, 104, 106, 108 may be performed by the image capturedevice 302 (e.g., by the processor 310) and/or by a remote processor.For example, viewing window determination (functionalities of theviewing window component 106) and/or horizon-leveled visual contentgeneration (functionality of the generation component 108) may beperformed by the remote processor during and/or post capture of thevisual content by the image capture device. As another example,horizon-leveled visual content generation may be performed by theprocessor 310 during capture of the visual content to provide thehorizon-leveled visual content during capture of the visual content(e.g., preview of visual content being captured presented on a displayof the image capture device).

In some implementations, a representation of the viewing window may bepresented. For example, an image capture device capturing the visualcontent may determine the size, location, and/or the rotation of theviewing window during capture of the visual content and may display anoutline of the viewing window within a preview of the visual contentbeing captured. Such a presentation may allow a user to have a betterunderstanding of how much of the visual content that is being capturedmay be horizon level-able (includable in horizon-leveled visual content)and/or to modify use of the image capture device to capture visualcontent by using the viewing window representation as a guide (e.g.,using the outline of the viewing window overlaid over preview of thevisual content being captured to frame horizon-leveled visual content).

In some implementations, horizon leveling of the visual content may beperformed based on one or more user input. User input may be receivedthrough one or more graphical user interfaces and/or one or more userinterface devices (e.g., keyboard, mouse, trackpad, button, touchscreendisplay, microphone). For example, horizon leveling of the visualcontent may be performed based on a user providing one or more commandsthrough the graphical user interface(s) and/or the user interfacedevice(s) to enable visual content horizontal leveling (e.g., turning onor turning off horizon leveling feature). As another example, horizonleveling of the visual content may be performed based on a userproviding one or more commands through the graphical user interface(s)and/or the user interface device(s) to set condition(s) for enablingvisual content horizontal leveling and the specified condition(s) beingmet (e.g., image capture device operation meeting the condition(s)specified by user for turning on or turning off horizon levelingfeature).

In some implementations, the visual content may not be horizon leveledin/near real time. For example, the image capture device may not havesufficient resource to apply the horizon leveling technique describedherein in real-time and/or may be devoting its resources to other tasks.The horizon leveling of the visual content may be performed by the imagecapture device once sufficient resource becomes available. The horizonleveling of the visual content may be performed by the remote processor.For example, the remote processor may be one or more processors of aremote computing device (e.g., mobile device, desktop, server), and theremote processor may receive video information and the rotationalposition information captured/generated by the image capture device. Theremote computing device (software running on the remote computingdevice) may apply the horizon leveling technique described herein postcapture of the visual content by the image capture device. Thepost-capture horizon leveling of the visual content may be performed bythe remote processor responsive to reception of the video informationand rotational position information, responsive to user/system commandto horizon level the visual content, responsive to the visual contentbeing opened for playback, and/or responsive to other conditions.

Implementations of the disclosure may be made in hardware, firmware,software, or any suitable combination thereof. Aspects of the disclosuremay be implemented as instructions stored on a machine-readable medium,which may be read and executed by one or more processors. Amachine-readable medium may include any mechanism for storing ortransmitting information in a form readable by a machine (e.g., acomputing device). For example, a tangible (non-transitory)machine-readable storage medium may include read-only memory, randomaccess memory, magnetic disk storage media, optical storage media, flashmemory devices, and others, and a machine-readable transmission mediamay include forms of propagated signals, such as carrier waves, infraredsignals, digital signals, and others. Firmware, software, routines, orinstructions may be described herein in terms of specific exemplaryaspects and implementations of the disclosure, and performing certainactions.

In some implementations, some or all of the functionalities attributedherein to the system 10 may be provided by external resources notincluded in the system 10. External resources may include hosts/sourcesof information, computing, and/or processing and/or other providers ofinformation, computing, and/or processing outside of the system 10.

Although the processor 11 and the electronic storage 13 are shown to beconnected to the interface 12 in FIG. 1, any communication medium may beused to facilitate interaction between any components of the system 10.One or more components of the system 10 may communicate with each otherthrough hard-wired communication, wireless communication, or both. Forexample, one or more components of the system 10 may communicate witheach other through a network. For example, the processor 11 maywirelessly communicate with the electronic storage 13. By way ofnon-limiting example, wireless communication may include one or more ofradio communication, Bluetooth communication, Wi-Fi communication,cellular communication, infrared communication, Li-Fi communication, orother wireless communication. Other types of communications arecontemplated by the present disclosure.

Although the processor 11 is shown in FIG. 1 as a single entity, this isfor illustrative purposes only. In some implementations, the processor11 may comprise a plurality of processing units. These processing unitsmay be physically located within the same device, or the processor 11may represent processing functionality of a plurality of devicesoperating in coordination. The processor 11 may be configured to executeone or more components by software; hardware; firmware; some combinationof software, hardware, and/or firmware; and/or other mechanisms forconfiguring processing capabilities on the processor 11.

It should be appreciated that although computer components areillustrated in FIG. 1 as being co-located within a single processingunit, in implementations in which processor 11 comprises multipleprocessing units, one or more of computer program components may belocated remotely from the other computer program components. Whilecomputer program components are described as performing or beingconfigured to perform operations, computer program components maycomprise instructions which may program processor 11 and/or system 10 toperform the operation.

While computer program components are described herein as beingimplemented via processor 11 through machine-readable instructions 100,this is merely for ease of reference and is not meant to be limiting. Insome implementations, one or more functions of computer programcomponents described herein may be implemented via hardware (e.g.,dedicated chip, field-programmable gate array) rather than software. Oneor more functions of computer program components described herein may besoftware-implemented, hardware-implemented, or software andhardware-implemented

The description of the functionality provided by the different computerprogram components described herein is for illustrative purposes, and isnot intended to be limiting, as any of computer program components mayprovide more or less functionality than is described. For example, oneor more of computer program components may be eliminated, and some orall of its functionality may be provided by other computer programcomponents. As another example, processor 11 may be configured toexecute one or more additional computer program components that mayperform some or all of the functionality attributed to one or more ofcomputer program components described herein.

The electronic storage media of the electronic storage 13 may beprovided integrally (i.e., substantially non-removable) with one or morecomponents of the system 10 and/or as removable storage that isconnectable to one or more components of the system 10 via, for example,a port (e.g., a USB port, a Firewire port, etc.) or a drive (e.g., adisk drive, etc.). The electronic storage 13 may include one or more ofoptically readable storage media (e.g., optical disks, etc.),magnetically readable storage media (e.g., magnetic tape, magnetic harddrive, floppy drive, etc.), electrical charge-based storage media (e.g.,EPROM, EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive,etc.), and/or other electronically readable storage media. Theelectronic storage 13 may be a separate component within the system 10,or the electronic storage 13 may be provided integrally with one or moreother components of the system 10 (e.g., the processor 11). Although theelectronic storage 13 is shown in FIG. 1 as a single entity, this is forillustrative purposes only. In some implementations, the electronicstorage 13 may comprise a plurality of storage units. These storageunits may be physically located within the same device, or theelectronic storage 13 may represent storage functionality of a pluralityof devices operating in coordination.

FIG. 2 illustrates method 200 for horizon leveling videos. Theoperations of method 200 presented below are intended to beillustrative. In some implementations, method 200 may be accomplishedwith one or more additional operations not described, and/or without oneor more of the operations discussed. In some implementations, two ormore of the operations may occur substantially simultaneously.

In some implementations, method 200 may be implemented in one or moreprocessing devices (e.g., a digital processor, an analog processor, adigital circuit designed to process information, a central processingunit, a graphics processing unit, a microcontroller, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information). The one or moreprocessing devices may include one or more devices executing some or allof the operation of method 200 in response to instructions storedelectronically on one or more electronic storage media. The one or moreprocessing devices may include one or more devices configured throughhardware, firmware, and/or software to be specifically designed forexecution of one or more of the operations of method 200.

Referring to FIG. 2 and method 200, at operation 201, video informationmay be obtained. The video information may define a video. The video mayinclude video content captured by an image capture device during acapture duration. The video content may have a progress length. Thevideo content may include visual content captured at different momentswithin the capture duration. The visual content may be viewable as afunction of progress through the progress length. The visual content mayhave a field of view. In some implementation, operation 201 may beperformed by a processor component the same as or similar to the videoinformation component 102 (Shown in FIG. 1 and described herein).

At operation 202, rotational position information of the image capturedevice may be obtained. The rotational position information maycharacterize rotational positions of the image capture device as afunction of progress through the capture duration. In someimplementation, operation 202 may be performed by a processor componentthe same as or similar to the position information component 104 (Shownin FIG. 1 and described herein).

At operation 203, a viewing window for the visual content as a functionof progress through the progress length may be determined based on therotational positions of the image capture device as the function ofprogress through the capture duration and/or other information. Theviewing window may define extents of the visual content to be includedwithin horizon-leveled visual content as the function of progressthrough the progress length. Determination of the viewing window mayinclude determination of a placement of the viewing window within thefield of view of the visual content as the function of progress throughthe progress length based on the rotational positions of the imagecapture device as the function of progress through the capture durationand/or other information. In some implementation, operation 203 may beperformed by a processor component the same as or similar to the viewingwindow component 106 (Shown in FIG. 1 and described herein).

At operation 204, the horizon-leveled visual content may be generatedbased on the viewing window and/or other information. Thehorizon-leveled visual content may include a punchout of the extents ofthe visual content defined by the viewing window. Inclusion of theextents of the visual content defined by the viewing window within thehorizon-leveled visual content may effectuate horizon leveling of thevisual content. In some implementation, operation 204 may be performedby a processor component the same as or similar to the generationcomponent 108 (Shown in FIG. 1 and described herein).

Although the system(s) and/or method(s) of this disclosure have beendescribed in detail for the purpose of illustration based on what iscurrently considered to be the most practical and preferredimplementations, it is to be understood that such detail is solely forthat purpose and that the disclosure is not limited to the disclosedimplementations, but, on the contrary, is intended to covermodifications and equivalent arrangements that are within the spirit andscope of the appended claims. For example, it is to be understood thatthe present disclosure contemplates that, to the extent possible, one ormore features of any implementation can be combined with one or morefeatures of any other implementation.

What is claimed is:
 1. A system for horizon leveling videos, the system comprising: one or more physical processors configured by machine-readable instructions to: obtain video information defining a video, the video including video content captured by an image capture device during a capture duration, the video content having a progress length, the video content including visual content captured at different moments within the capture duration, the visual content viewable as a function of progress through the progress length, the visual content having a field of view; obtain rotational position information for the video, the rotational position information characterizing rotational positions of the image capture device as a function of progress through the capture duration; determine a viewing window for the visual content as a function of progress through the progress length based on the rotational positions of the image capture device as the function of progress through the capture duration, the viewing window defining extents of the visual content to be included within horizon-leveled visual content as the function of progress through the progress length, wherein determination of the viewing window includes determination of a placement of the viewing window within the field of view of the visual content as the function of progress through the progress length based on the rotational positions of the image capture device as the function of progress through the capture duration; and generate the horizon-leveled visual content based on the viewing window, the horizon-leveled visual content including a punchout of the extents of the visual content defined by the viewing window, wherein inclusion of the extents of the visual content defined by the viewing window within the horizon-leveled visual content effectuates horizon leveling of the visual content.
 2. The system of claim 1, wherein the viewing window has a one-by-one aspect ratio, the one-by-one aspect ratio reducing impact of an off-axis horizon depicted within the horizon-leveled visual content.
 3. The system of claim 1, wherein the visual content includes a distortion such that a straight line within a scene depicted within the visual content appears as a curved line, the distortion of the visual content reducing impact of an off-axis horizon depicted within the horizon-leveled visual content.
 4. The system of claim 3, wherein the distortion includes a barrel distortion or a pincushion distortion.
 5. The system of claim 3, wherein the visual content includes the distortion based on capture of the visual content through a wide field of view optical element.
 6. The system of claim 3, wherein the visual content includes the distortion based on application of the distortion to non-distorted visual content, the distortion applied to the non-distorted visual content based on the visual content including the non-distorted visual content.
 7. The system of claim 1, wherein the determination of the viewing window further includes determination of a size of the viewing window as the function of progress through the progress length based on the rotational positions of the image capture device as the function of progress through the capture duration.
 8. The system of claim 7, wherein the size of the viewing window changes as the function of progress through the progress length to simulate changes in zoom for the visual content.
 9. The system of claim 1, wherein the determination of the placement of the viewing window within the field of view of the visual content includes determination of a rotation of the viewing window within the field of view of the visual content.
 10. The system of claim 1, wherein the determination of the placement of the viewing window within the field of view of the visual content includes determination of a location of the viewing window within the field of view of the visual content, the location of the viewing window within the field of view of the visual content determining framing of the visual content.
 11. A method for horizon leveling videos, the method performed by a computing system including one or more processors, the method comprising: obtaining, by the computing system, video information defining a video, the video including video content captured by an image capture device during a capture duration, the video content having a progress length, the video content including visual content captured at different moments within the capture duration, the visual content viewable as a function of progress through the progress length, the visual content having a field of view; obtaining, by the computing system, rotational position information for the video, the rotational position information characterizing rotational positions of the image capture device as a function of progress through the capture duration; determining, by the computing system, a viewing window for the visual content as a function of progress through the progress length based on the rotational positions of the image capture device as the function of progress through the capture duration, the viewing window defining extents of the visual content to be included within horizon-leveled visual content as the function of progress through the progress length, wherein determining the viewing window includes determining a placement of the viewing window within the field of view of the visual content as the function of progress through the progress length based on the rotational positions of the image capture device as the function of progress through the capture duration; and generating, by the computing system, the horizon-leveled visual content based on the viewing window, the horizon-leveled visual content including a punchout of the extents of the visual content defined by the viewing window, wherein inclusion of the extents of the visual content defined by the viewing window within the horizon-leveled visual content effectuates horizon leveling of the visual content.
 12. The method of claim 11, wherein the viewing window has a one-by-one aspect ratio, the one-by-one aspect ratio reducing impact of an off-axis horizon depicted within the horizon-leveled visual content.
 13. The method of claim 11, wherein the visual content includes a distortion such that a straight line within a scene depicted within the visual content appears as a curved line, the distortion of the visual content reducing impact of an off-axis horizon depicted within the horizon-leveled visual content.
 14. The method of claim 13, wherein the distortion includes a barrel distortion or a pincushion distortion.
 15. The method of claim 13, wherein the visual content includes the distortion based on capture of the visual content through a wide field of view optical element.
 16. The method of claim 13, wherein the visual content includes the distortion based on application of the distortion to non-distorted visual content, the distortion applied to the non-distorted visual content based on the visual content including the non-distorted visual content.
 17. The method of claim 11, wherein determining the viewing window further includes determining a size of the viewing window as the function of progress through the progress length based on the rotational positions of the image capture device as the function of progress through the capture duration.
 18. The method of claim 17, wherein the size of the viewing window changes as the function of progress through the progress length to simulate changes in zoom for the visual content.
 19. The method of claim 11, wherein determining the placement of the viewing window within the field of view of the visual content includes determining a rotation of the viewing window within the field of view of the visual content.
 20. The method of claim 11, wherein the determining the placement of the viewing window within the field of view of the visual content includes determining a location of the viewing window within the field of view of the visual content, the location of the viewing window within the field of view of the visual content determining framing of the visual content. 